Fix removal of bookmark's fringe mark in Info and Dired
authorEli Zaretskii <eliz@gnu.org>
Mon, 25 Mar 2024 13:51:07 +0000 (15:51 +0200)
committerEli Zaretskii <eliz@gnu.org>
Mon, 25 Mar 2024 13:51:07 +0000 (15:51 +0200)
* lisp/bookmark.el (bookmark-buffer-file-name): Support Info
buffers.
(bookmark--remove-fringe-mark): Call 'bookmark-buffer-file-name'
instead of using 'buffer-file-name', which could be nil.
(Bug#69974)

lisp/bookmark.el

index 60dd61a5ac87bbdea40d9f8181191ca3c6e01053..bf2357207d88e0d4791037d2aa3c0dd005fe26cb 100644 (file)
@@ -515,10 +515,11 @@ See user option `bookmark-fringe-mark'."
         (non-essential t)
         overlays found temp)
     (when (and pos filename)
-      (setq filename (expand-file-name filename))
+      (setq filename (abbreviate-file-name (expand-file-name filename)))
       (dolist (buf (buffer-list))
         (with-current-buffer buf
-          (when (equal filename buffer-file-name)
+          (when (equal filename
+                       (ignore-errors (bookmark-buffer-file-name)))
             (setq overlays
                   (save-excursion
                     (goto-char pos)
@@ -1192,6 +1193,8 @@ it to the name of the bookmark currently being set, advancing
      (if (stringp dired-directory)
          dired-directory
        (car dired-directory)))
+    ((and (boundp 'Info-current-file) (stringp Info-current-file))
+     Info-current-file)
     (t (error "Buffer not visiting a file or directory")))))
 
 (defvar bookmark--watch-already-asked-mtime nil